{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy\n",
    "import xarray\n",
    "import dask\n",
    "from kruskal import daily_log_returns, compute_distance, KruskalMST"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Introduction\n",
    "\n",
    "The KruskalMST class provides a method for computing the minimum spanning tree of a network according to Kruskal's algorithm. The class takes as input, a pandas dataframe as a constructor. Upon initialization, the graph is constructed by iterating through the i,j indexes of the dataframe and adding new edges with distances. Edges are only added if they do not exist. All nodes are connected to edges since we have a symmetrical matrix. \n",
    "\n",
    "KruskalMST draws heavily on networkX's implementation of min spanning tree. Upon deeper analysis, the networkx implementation itself is built on a Unionfind data structure found in other python implementations. \n",
    "\n",
    "IO and distance computation are not functions built into the class but are methods available upon import of the module. \n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Create a list of tickers that you want to consider\n",
    "* The 'daily_log_returns' function takes a list\n",
    "* This function will perform the API call to yfinance and compute log returns on daily close for each ticker\n",
    "* Individual tickers are concatenated into larger df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "shares = ['USCI', 'GLD', 'TLT', 'VXX', 'SPY']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Compute the daily log returns on close for the shares in our universe"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "returns_df = daily_log_returns(shares)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>log_return_USCI</th>\n",
       "      <th>log_return_GLD</th>\n",
       "      <th>log_return_TLT</th>\n",
       "      <th>log_return_VXX</th>\n",
       "      <th>log_return_SPY</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>2020-03-02</td>\n",
       "      <td>0.019689</td>\n",
       "      <td>0.005511</td>\n",
       "      <td>-0.007378</td>\n",
       "      <td>-0.034794</td>\n",
       "      <td>0.042395</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2020-03-03</td>\n",
       "      <td>0.006582</td>\n",
       "      <td>0.030950</td>\n",
       "      <td>0.015406</td>\n",
       "      <td>0.104225</td>\n",
       "      <td>-0.029050</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2020-03-04</td>\n",
       "      <td>-0.004383</td>\n",
       "      <td>0.001753</td>\n",
       "      <td>-0.010675</td>\n",
       "      <td>-0.061136</td>\n",
       "      <td>0.041174</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2020-03-05</td>\n",
       "      <td>-0.012630</td>\n",
       "      <td>0.021371</td>\n",
       "      <td>0.024587</td>\n",
       "      <td>0.148420</td>\n",
       "      <td>-0.033807</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2020-03-06</td>\n",
       "      <td>-0.024121</td>\n",
       "      <td>0.000381</td>\n",
       "      <td>0.050735</td>\n",
       "      <td>0.111265</td>\n",
       "      <td>-0.016669</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            log_return_USCI  log_return_GLD  log_return_TLT  log_return_VXX  \\\n",
       "Date                                                                          \n",
       "2020-03-02         0.019689        0.005511       -0.007378       -0.034794   \n",
       "2020-03-03         0.006582        0.030950        0.015406        0.104225   \n",
       "2020-03-04        -0.004383        0.001753       -0.010675       -0.061136   \n",
       "2020-03-05        -0.012630        0.021371        0.024587        0.148420   \n",
       "2020-03-06        -0.024121        0.000381        0.050735        0.111265   \n",
       "\n",
       "            log_return_SPY  \n",
       "Date                        \n",
       "2020-03-02        0.042395  \n",
       "2020-03-03       -0.029050  \n",
       "2020-03-04        0.041174  \n",
       "2020-03-05       -0.033807  \n",
       "2020-03-06       -0.016669  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "returns_df.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Compute distance matrix for the returns in our universe\n",
    "* The correlation method used here is Pearson, the default method from pandas."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "distance_matrix = compute_distance(returns_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>log_return_USCI</th>\n",
       "      <th>log_return_GLD</th>\n",
       "      <th>log_return_TLT</th>\n",
       "      <th>log_return_VXX</th>\n",
       "      <th>log_return_SPY</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>log_return_USCI</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.147153</td>\n",
       "      <td>1.576177</td>\n",
       "      <td>1.644134</td>\n",
       "      <td>1.081592</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>log_return_GLD</td>\n",
       "      <td>1.147153</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.316910</td>\n",
       "      <td>1.395006</td>\n",
       "      <td>1.399472</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>log_return_TLT</td>\n",
       "      <td>1.576177</td>\n",
       "      <td>1.316910</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.106574</td>\n",
       "      <td>1.678964</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>log_return_VXX</td>\n",
       "      <td>1.644134</td>\n",
       "      <td>1.395006</td>\n",
       "      <td>1.106574</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.901607</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>log_return_SPY</td>\n",
       "      <td>1.081592</td>\n",
       "      <td>1.399472</td>\n",
       "      <td>1.678964</td>\n",
       "      <td>1.901607</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 log_return_USCI  log_return_GLD  log_return_TLT  \\\n",
       "log_return_USCI         0.000000        1.147153        1.576177   \n",
       "log_return_GLD          1.147153        0.000000        1.316910   \n",
       "log_return_TLT          1.576177        1.316910        0.000000   \n",
       "log_return_VXX          1.644134        1.395006        1.106574   \n",
       "log_return_SPY          1.081592        1.399472        1.678964   \n",
       "\n",
       "                 log_return_VXX  log_return_SPY  \n",
       "log_return_USCI        1.644134        1.081592  \n",
       "log_return_GLD         1.395006        1.399472  \n",
       "log_return_TLT         1.106574        1.678964  \n",
       "log_return_VXX         0.000000        1.901607  \n",
       "log_return_SPY         1.901607        0.000000  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "distance_matrix"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### We construct a Graph object\n",
    "*  `KruskalMST` class is simply a` networkx` `Graph` object with Vertices and Edges\n",
    "* When a matrix is given to the constructor, edges and vertices are added  for every edge `(i,j)` in the matrix \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "g = KruskalMST(distance_matrix)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### We call `min_span_tree` method on the graph object\n",
    "* This method finds the minimum spanning tree of the graph object\n",
    "* `min_span_tree` calls a private method `min_span_edges` that finds the minimum spanning edges of graph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "T = g.min_span_tree()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Let's have a look at our graph edges \n",
    "*` Networkx` is a great library for doing graph analysis. Lots of useful attrs on the `Graph` object"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "EdgeView([('log_return_USCI', 'log_return_GLD'), ('log_return_GLD', 'log_return_SPY'), ('log_return_GLD', 'log_return_TLT'), ('log_return_GLD', 'log_return_VXX')])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "T.edges()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### We can use networkx to visualize the network structure"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import networkx \n",
    "networkx.draw_networkx(T)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "networkx.draw(g.graph)\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
